<?  
  set_time_limit(4500);
  /* Se asegura que el archivo es incluido por el index */
    defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );  
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Academia_exe( $this );
    
	class Academia_exe extends Exe
	{
	function Academia_exe( &$oModule )
		{
			$this->Exe( $oModule );
		}
		// AGREGAR_ACADEMIA
		function insert()
		{
			$oEstablecimiento = $this->oModule->loadClass( 'Establecimiento_exe' );
			$ncEstablecimiento = $oEstablecimiento->insert( true);
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Academia_frm' );
			extract( $oForm->getFieldArray() );
			// Busca el siguiente id
			$this->oDatabase->insert("gtAcademia"
								,"ncEstablecimiento", $ncEstablecimiento
								,"cHabilitacion", $cHabilitacion
								,"nqAlumnos", $nqAlumnos);
								
			$aNivel = $oForm->aFields['aNivel']->getValue();
			foreach ( $aNivel as $ncNivel )
			{
				$this->oDatabase->insert( "gtAcademiaNivel",
										"ncNivelAcademia", $ncNivel,
										"ncEstablecimiento", $ncEstablecimiento );
			}
			$aTurno = $oForm->aFields['aTurno']->getValue();
			foreach ( $aTurno as $ncTurno )
			{
				$this->oDatabase->insert( "gtAcademiaTurno",
										"ncTurno", $ncTurno,
										"ncEstablecimiento", $ncEstablecimiento );
			}
			$aFrecuencia = $oForm->aFields['aFrecuencia']->getValue();
			foreach ( $aFrecuencia as $ncFrecuencia )
			{
				$this->oDatabase->insert( "gtAcademiaFrecuencia",
										"ncFrecuencia", $ncFrecuencia,
										"ncEstablecimiento", $ncEstablecimiento );
			}
			$aCurso = $oForm->aFields['aCurso']->getValue();
			foreach ( $aCurso as $ncCurso )
			{
				$this->oDatabase->insert( "gtAcademiaCurso",
										"ncCursoTematico", $ncCurso,
										"ncEstablecimiento", $ncEstablecimiento );
			}
			$aCertificacion = $oForm->aFields['aCertificacion']->getValue();
			foreach ( $aCertificacion as $ncCertificacion )
			{
				$this->oDatabase->insert( "gtAcademiaCertificacion",
										"ncCertificacion", $ncCertificacion,
										"ncEstablecimiento", $ncEstablecimiento );
			}
			$aCalidad = $oForm->aFields['aCalidad']->getValue();
			foreach ( $aCalidad as $ncCalidad )
			{
				$this->oDatabase->insert( "gtEstablecimientoCalidad",
										"ncCalidad", $ncCalidad,
										"ncEstablecimiento", $ncEstablecimiento );
			}
		}
		
		// ELIMINAR_ACADEMIA
		function delete()
		{
			$ncEstablecimiento = getParam( 'ncEstablecimiento' );
			$this->oDatabase->delete("gtAcademia","ncEstablecimiento", $ncEstablecimiento );
		}
		
		// MODIFICAR_ACADEMIA
		function update()
		{
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'Academia_frm' );
			extract( $oForm->getFieldArray() );
			$nqExiste = $this->oDatabase->getData("SELECT count(*) FROM gtAcademia WHERE ncEstablecimiento = $ncEstablecimiento ");
			if ( $nqExiste == 0 ) 
				$this->oDatabase->insert("gtAcademia"
									,"cHabilitacion", $cHabilitacion
									,"nqAlumnos", $nqAlumnos
									 ,"ncEstablecimiento", $ncEstablecimiento);
			else
				$this->oDatabase->update("gtAcademia"
									,"cHabilitacion", $cHabilitacion
									,"nqAlumnos", $nqAlumnos
									,"WHERE"
									 ,"ncEstablecimiento", $ncEstablecimiento);
			$this->oDatabase->delete( "gtAcademiaNivel","ncEstablecimiento", $ncEstablecimiento );
			$aNivel = $oForm->aFields['aNivel']->getValue();
			foreach ( $aNivel as $ncNivel )
			{
				$this->oDatabase->insert( "gtAcademiaNivel",
										"ncNivelAcademia", $ncNivel,
										"ncEstablecimiento", $ncEstablecimiento );
			}			
			$this->oDatabase->delete( "gtAcademiaTurno","ncEstablecimiento", $ncEstablecimiento );
			$aTurno = $oForm->aFields['aTurno']->getValue();
			foreach ( $aTurno as $ncTurno )
			{
				$this->oDatabase->insert( "gtAcademiaTurno",
										"ncTurno", $ncTurno,
										"ncEstablecimiento", $ncEstablecimiento );
			}
			
			$this->oDatabase->delete( "gtAcademiaFrecuencia","ncEstablecimiento", $ncEstablecimiento );
			$aFrecuencia = $oForm->aFields['aFrecuencia']->getValue();
			foreach ( $aFrecuencia as $ncFrecuencia )
			{
				$this->oDatabase->insert( "gtAcademiaFrecuencia",
										"ncFrecuencia", $ncFrecuencia,
										"ncEstablecimiento", $ncEstablecimiento );
			}
			
			$this->oDatabase->delete( "gtAcademiaCurso","ncEstablecimiento", $ncEstablecimiento );
			$aCurso = $oForm->aFields['aCurso']->getValue();
			foreach ( $aCurso as $ncCurso )
			{
				$this->oDatabase->insert( "gtAcademiaCurso",
										"ncCursoTematico", $ncCurso,
										"ncEstablecimiento", $ncEstablecimiento );
			}
			
			$this->oDatabase->delete( "gtAcademiaCertificacion","ncEstablecimiento", $ncEstablecimiento );
			$aCertificacion = $oForm->aFields['aCertificacion']->getValue();
			foreach ( $aCertificacion as $ncCertificacion )
			{
				$this->oDatabase->insert( "gtAcademiaCertificacion",
										"ncCertificacion", $ncCertificacion,
										"ncEstablecimiento", $ncEstablecimiento );
			}
			
			$this->oDatabase->delete( "gtEstablecimientoCalidad","ncEstablecimiento", $ncEstablecimiento );
			$aCalidad = $oForm->aFields['aCalidad']->getValue();
			foreach ( $aCalidad as $ncCalidad )
			{
				$this->oDatabase->insert( "gtEstablecimientoCalidad",
										"ncCalidad", $ncCalidad,
										"ncEstablecimiento", $ncEstablecimiento );
			}
		}
	}
?>